home *** CD-ROM | disk | FTP | other *** search
/ Power Bytes: Money & Finance / PowerBytes Money and Finance CD-ROM 01 / PowerBytes Money and Finance CD-ROM 01.iso / New Stuffed Files / Invoice HELPER®.sit / Invoice HELPERÆ 2.1 / Invoice HELPER∆ 2.1 / stack.txt < prev   
Encoding:
Text File  |  1988-10-31  |  5.7 KB  |  188 lines

  1. -- stack: in.1
  2. -- format: 8 (HyperCard 1)
  3. -- flags: 0x1000 (none)
  4. -- protect password hash: 0
  5. -- maximum user level: 5 (scripting)
  6. -- window: Rect(x1=0, y1=0, x2=0, y2=0)
  7. -- screen: Rect(x1=0, y1=0, x2=0, y2=0)
  8. -- card dimensions: w=0 h=0
  9. -- scroll: x=0 y=0
  10. -- background count: 4
  11. -- first background id: 3301
  12. -- card count: 6
  13. -- first card id: 3930
  14. -- list block id: 6625
  15. -- print block id: 2239
  16. -- font table block id: 0
  17. -- style table block id: 0
  18. -- free block count: 0
  19. -- free size: 0 bytes
  20. -- total size: 44032 bytes
  21. -- stack block size: 7168 bytes
  22. -- created by hypercard version: 0x00000000
  23. -- compacted by hypercard version: 0x01208000
  24. -- modified by hypercard version: 0x01208000
  25. -- opened by hypercard version: 0x01208000
  26. -- patterns[0]: 0x0000000000000000
  27. -- patterns[1]: 0x8000000008000000
  28. -- patterns[2]: 0x8800220088002200
  29. -- patterns[3]: 0x8888222288882222
  30. -- patterns[4]: 0x88AA22AA88AA22AA
  31. -- patterns[5]: 0xCCAA33AACCAA33AA
  32. -- patterns[6]: 0xEEAABBAAEEAABBAA
  33. -- patterns[7]: 0xEEBBBBEEEEBBBBEE
  34. -- patterns[8]: 0xFFBBFFEEFFBBFFEE
  35. -- patterns[9]: 0xFFBBFFFFFFBBFFFF
  36. -- patterns[10]: 0x8010022001084004
  37. -- patterns[11]: 0xFFFFFFFFFFFFFFFF
  38. -- patterns[12]: 0x8822882288228822
  39. -- patterns[13]: 0x1122448811224488
  40. -- patterns[14]: 0xC4800C6843023026
  41. -- patterns[15]: 0xB130031BD8C00C8D
  42. -- patterns[16]: 0xAA00AA00AA00AA00
  43. -- patterns[17]: 0x8822552288225522
  44. -- patterns[18]: 0x8855225588552255
  45. -- patterns[19]: 0x77DD77DD77DD77DD
  46. -- patterns[20]: 0x8000000000000000
  47. -- patterns[21]: 0xAA55AA55AA55AA55
  48. -- patterns[22]: 0x038448300C020101
  49. -- patterns[23]: 0x8244394482010101
  50. -- patterns[24]: 0x8814224188412214
  51. -- patterns[25]: 0x8080413E080814E3
  52. -- patterns[26]: 0x22048C7422179810
  53. -- patterns[27]: 0xBE808808EB088880
  54. -- patterns[28]: 0x25C8328964244C92
  55. -- patterns[29]: 0xA29C41BE2AC914EB
  56. -- patterns[30]: 0x40A00000040A0000
  57. -- patterns[31]: 0x8040200002040800
  58. -- patterns[32]: 0xAA00800088008000
  59. -- patterns[33]: 0xFF80808080808080
  60. -- patterns[34]: 0x081C22C180010204
  61. -- patterns[35]: 0xFF808080FF080808
  62. -- patterns[36]: 0xF87422478F172271
  63. -- patterns[37]: 0xBF00BFBFB0B0B0B0
  64. -- patterns[38]: 0xFF7FBE5DA2418000
  65. -- patterns[39]: 0xFAF5FAF5A050A050
  66. -- checksum: 0x0
  67. ----- HyperTalk script -----
  68. on openStack
  69.   global dollarsAndCents,unitFormat,leadingZeros, printingInvoice,findMode,deleteFlag,changedInvoice,newInvoice, toolWindowLoc,testVersion,savedLevel
  70.   put "0.00" into dollarsAndCents
  71.   put "0" into unitFormat
  72.   put "000000" into leadingZeros
  73.   put false into printingInvoice
  74.   put false into findMode
  75.   put empty into deleteFlag
  76.   put false into changedInvoice
  77.   put false into newInvoice
  78.   put false into testVersion
  79.   put loc of tool window into toolWindowLoc
  80.   put the userLevel into savedLevel
  81.   set the userLevel to 4
  82.   hide menubar
  83.   choose browse tool
  84. end openStack
  85.  
  86. function genericFind searchString,searchField,firstCard,lastCard
  87. -- find item only in given field in given range of cards
  88. set cursor to busy
  89. put the number of this card into startCard
  90. put empty into foundCard
  91. put empty into firstFind
  92. set lockScreen to true
  93. repeat forever
  94.   set cursor to busy
  95.   find searchString in field searchField
  96.   if the Result is empty then
  97.     get the number of this card
  98.     if (it >= firstCard) and (it <= lastCard) then
  99.       put it into foundCard
  100.       exit repeat
  101.     else
  102.       if firstFind is empty then
  103.         put it into firstFind
  104.       else
  105.         if it=firstFind then
  106.           exit repeat
  107.         end if
  108.       end if
  109.     end if
  110.   else
  111.     exit repeat
  112.   end if
  113. end repeat
  114. if foundCard is empty then
  115.   go card startCard
  116. end if
  117. set lockScreen to false
  118. return foundCard
  119. end genericFind
  120.  
  121. on newCustomer
  122.   set lockscreen to true
  123.   go to last card -- assumes last card is customer card
  124.   domenu "New Card"
  125.   set lockscreen to false
  126. end newCustomer
  127.  
  128. on findCustomer
  129.   set lockScreen to true
  130.   Ask "Customer Name" with empty
  131.   if it is empty then exit findCustomer
  132.   put it into customerName
  133.   put number of card "Customer Master" into firstCard
  134.   put number of field "Sell to:" of card firstCard into fieldNumber
  135.   add 1 to firstCard
  136.   put number of last Card into lastCard
  137.   if genericFind(customerName,fieldNumber,firstCard,lastCard) is empty then
  138.     Answer "Customer"&&customerName&&"not found"
  139.   end if
  140.   set lockScreen to false
  141. end findCustomer
  142.  
  143. on goInvoice InvoiceNumber
  144.   set lockscreen to true
  145.   put 1+the number of card "Invoice Master" into firstCard
  146.   put the number of card "Customer Master" into lastCard
  147.   subtract 1 from lastCard
  148.   put the number of field "Invoice Number" of card "Invoice Master" into fieldNumber
  149.   if genericFind(InvoiceNumber,fieldNumber,firstCard,lastCard) is empty then
  150.     Answer "Invoice"&&InvoiceNumber&&"not found"
  151.   end if
  152.   set lockscreen to false
  153. end goInvoice
  154.  
  155. on findInvoice
  156.   global leadingZeros
  157.   Ask "Invoice Number" with empty
  158.   if it is empty then exit findInvoice
  159.   set numberFormat to leadingZeros
  160.   put it into InvoiceNumber
  161.   add 0 to InvoiceNumber
  162.   goInvoice InvoiceNumber
  163. end findInvoice
  164.  
  165. --function clickLine returns the line of the target field
  166. --over which the mouse was clicked.  It allows 4 pixels under the
  167. --baseline for the psychological effect of descenders.
  168. -- Adapted from the HyperCard 1.2.1 Update description
  169. -- (M)agreeable software, inc. added handling scrollable fields
  170.  
  171. function clickLine
  172. put the mouseV - item 2 of the rect of the target into relativeMouseV
  173. add -4+the scroll of the target to relativeMouseV
  174. divide relativeMouseV by the textheight of the target
  175. return trunc(relativeMouseV)+1
  176. --return ((the mouseV - item 2 of the rect of the target-4) --div the textheight of the target) + 1
  177. end clickLine
  178.  
  179. on closeStack
  180.   global savedLevel
  181.   if freeSize of this stack > 0 then
  182.     put "Compacting Stack"
  183.     doMenu "Compact Stack"
  184.     hide message box
  185.   end if
  186.   set the userlevel to savedLevel
  187. end closeStack
  188.